package com.jhs.kjs.service.dao;

import java.util.List;
import java.util.Map;

import com.jhs.kjs.dto.CarDTO;
import com.jhs.kjs.dto.CarDestination_DestinationDTOExt;
import com.jhs.kjs.dto.CarDetailInfo_CarDTO;
import com.jhs.kjs.dto.CarDriver_CarDTO;
import com.jhs.kjs.dto.CarInfoDTO;
import com.jhs.kjs.dto.CarSensorDTO;
import com.jhs.kjs.dto.CarSensor_PositionDTO;
import com.jhs.kjs.dto.CarStatusDTO;
import com.jhs.kjs.dto.CustomerDTO;
import com.jhs.kjs.dto.CustomerUserDTO;
import com.jhs.kjs.dto.DestinationExtDTO;
import com.jhs.kjs.dto.PaingDTO;
import com.jhs.kjs.dto.emma.EmmaDTO;
import com.jhs.kjs.model.daumMap.dto.DaumMapDTO;

public interface IMapMapper {

	/**
	 * 차량들의 현재 위치를 가지고 온다.
	 * @return
	 */
	abstract public List<CarDriver_CarDTO> getCarInfoList(Long customeCode);
	/**
	 * 한 차량의 이동 경로를 가지고 온다.
	 * @param car
	 * @return
	 */
	abstract public List<CarSensorDTO> getCarPosition(DaumMapDTO car);
	/**
	 * 차량의 자세한 정보를 가지고 온다.
	 * @param car
	 * @return
	 */
	abstract public CarInfoDTO getCarAllinfo(CarDTO car);
	
	/**
	 * 차량의 status 정보를 가지고 온다.
	 * @param carCode
	 * @return
	 */
	public abstract CarStatusDTO getCarStatusDetail(Long carCode);
	/**
	 * 차량의 정보를 가지고 온다. 운전자명, 연락처, 그룹명, 소속, 차종, 운반물내용, 차량속도, 전압
	 * @param carCode
	 * @return
	 */
	public abstract CarInfoDTO getCarInfo(Long carCode);
	
	/**
	 * 목적지 리스트
	 * @param carCode
	 * @return
	 */
	public abstract List<DestinationExtDTO> getCarDestiniationList(Long carCode);
	/**
	 * 차 현재 날짜 처음 위치 가지고 오기.
	 * @param carCode
	 * @return
	 */
	public abstract CarSensorDTO getCarLocation(DaumMapDTO mapDTO);
	public abstract List<CarDetailInfo_CarDTO> getTotalCarList(
			CarDetailInfo_CarDTO param);
	public abstract CarDetailInfo_CarDTO gettingCarNewInfo(
			CarDetailInfo_CarDTO param);
	
	public abstract List<PaingDTO> getPagingInfo(DaumMapDTO param);
	public abstract PaingDTO getPagingInfoCount(DaumMapDTO mapDto);
	public abstract DaumMapDTO getAreaByCarCode(DaumMapDTO mapParam);
	public abstract List<PaingDTO> drawMarkerM120(DaumMapDTO mapDTO);
	public abstract List<CarDestination_DestinationDTOExt> getDestinationList(
			Map<String, String> param);
	public abstract  List<PaingDTO>  getCarRootExcel(DaumMapDTO mapParam);
	public abstract Long getDayDistance(DaumMapDTO mapParam);
	
	/**
	 * 차량 경로 얻기
	 * @param mapParam carCode, startTimeUnix, endTimeUnix
	 * @return
	 * @throws Exception
	 */
	public abstract List<CarSensorDTO> getCarRoute(DaumMapDTO mapParam) throws Exception;
	public abstract int getCustomerSerivceValue(EmmaDTO emma) throws Exception;
	public abstract CustomerDTO getCustomer(CustomerUserDTO user) throws Exception;
}
